package com.xtinno.service;

import java.util.Optional;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xtinno.mapper.LawReasoningPromptMapper;
import com.xtinno.pojo.dto.LawReasoningRequestDTO;
import com.xtinno.pojo.po.LawReasoningPromptPO;
import org.apache.logging.log4j.util.Strings;

import org.springframework.stereotype.Service;

/**
 * 封装了 法条推导（LawReasoningPrompt） 提示词相关的业务逻辑操作.
 *
 * @author lizhen
 * @since 1.0.0
 */
@Service
public class LawReasoningPromptService extends ServiceImpl<LawReasoningPromptMapper, LawReasoningPromptPO> {
	/**
	 * 使用 场景 和 类型 来检索当前做法条推导的相关提示词配置信息.
	 *
	 * @param scenario 场景.
	 * @param type     类型.
	 * @return 查询结果.
	 * @see LawReasoningRequestDTO
	 */
	public Optional<LawReasoningPromptPO> searchPrompt(String scenario, String type) {
			LambdaQueryWrapper<LawReasoningPromptPO> wrapper = new LambdaQueryWrapper<>();

		// 校验一下输入的参数，全是空就拉倒.
		if (Strings.isBlank(scenario) && Strings.isBlank(type)) {
			return Optional.empty();
		}

		// 场景参数条件
		if (Strings.isNotBlank(scenario)) {
			wrapper.eq(LawReasoningPromptPO::getLrp_scenario, scenario);
		}

		// 类型参数条件
		if (Strings.isNotBlank(type)) {
			wrapper.eq(LawReasoningPromptPO::getLrp_type, type);
		}

		return this.getOneOpt(wrapper, false);
	}
}
